package com.lightsaber.trade.as.entity.planning;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.lightsaber.trade.core.entity.BaseEntity;

@Entity
@Table(name = "MHPP_LEVEL_3_PLANNING")
public class Level3Planning extends BaseEntity {

    private static final long serialVersionUID = 339529173121122L;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "PLANNING_ID", unique = true, updatable = false, nullable = true)
    private Planning planning;

    @OneToMany(mappedBy = "level3Planning", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<ResourceGroup> resourceGroups;

    @OneToMany(mappedBy = "level3Planning", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<AdminDuty> dutys;

    @OneToMany(mappedBy = "level3Planning", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<Level3CampusStatus> level3CampusStatus;

    @Column(name = "PLANNING_EXERCISE", nullable = false)
    private Integer planningExercise;

    @Column(name = "REMARKS", length = 1000)
    private String remarks;

    public Integer getPlanningExercise() {
        return planningExercise;
    }

    public void setPlanningExercise(final Integer planningExercise) {
        this.planningExercise = planningExercise;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(final String remarks) {
        this.remarks = remarks;
    }

    public Planning getPlanning() {
        return planning;
    }

    public void setPlanning(final Planning planning) {
        this.planning = planning;
    }

    public List<ResourceGroup> getResourceGroups() {
        return resourceGroups;
    }

    public void setResourceGroups(final List<ResourceGroup> resourceGroups) {
        this.resourceGroups = resourceGroups;
    }

    public List<AdminDuty> getDutys() {
        return dutys;
    }

    public void setDutys(final List<AdminDuty> dutys) {
        this.dutys = dutys;
    }

    public List<Level3CampusStatus> getLevel3CampusStatus() {
        return level3CampusStatus;
    }

    public void setLevel3CampusStatus(final List<Level3CampusStatus> level3CampusStatus) {
        this.level3CampusStatus = level3CampusStatus;
    }

}
